package cn.xclink.wechat.service;

import com.alibaba.fastjson.JSON;
import org.springframework.stereotype.Service;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.Map;



/**获取服务器上的 AccessToken
 * Created by ljp on 2017/10/19.
 */
@Service
public class WxTokenService {
	 private String  APP_ID="wx7e0f6b612c53b996";
	 private String APP_SECRET="14e35a829bd35e491812431c6461c266";

    //获取微信access_token
    public String  getAccessToken(){
        String url =" https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
        url = url.replace("APPID", APP_ID).replace("APPSECRET", APP_SECRET);
        String tokenJsonStr = SendGET(url);
        Map tokenMap = JSON.parseObject(tokenJsonStr);
        //获取access_token
        return (String)tokenMap.get("access_token");
    }

    public String SendGET(String url) {
        System.out.println("-----SendGET---------begin-----");
        String result="";//访问返回结果
        BufferedReader read=null;//读取访问结果
        try {
            //创建url
            URL realurl=new URL(url);
            //打开连接
            URLConnection connection=realurl.openConnection();
            // 设置通用的请求属性
            connection.setRequestProperty("accept", "*/*");
            connection.setRequestProperty("connection", "Keep-Alive");
            connection.setRequestProperty("user-agent",
                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            //建立连接
            connection.connect();
            read = new BufferedReader(new InputStreamReader(
                    connection.getInputStream(),"UTF-8"));
            String line;//循环读取
            while ((line = read.readLine()) != null) {
                result += line;
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            if(read!=null){//关闭流
                try {
                    read.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        System.out.println("-----SendGET---------end --**---");
        System.out.println(result);
        System.out.println("-----SendGET---------end ---***--");
        return result;
    }
}